package com.HeJing.一维数组;

/**
 * ClassName: 一维数组的相关操作
 * Package: com.HeJing.一维数组
 * Description:
 *
 * @Author: HeJing
 * @Create: 2023-03-19 9:02
 * @Version: 1.0
 */
public class 一维数组的相关操作 {
    public static void main(String[] args){

        // 数组的声明与初始化:
        String[] foods = new String[]{"龙须菜", "玉兰片", "拌海蜇", "红烧肉"};
        // 声明:
        double[] prices;
        // 静态初始化:
        prices = new double[]{20.3, 32.12, 23.3, 12.32, 32.09};
        // 动态初始化
        String[] peoples = new String[5];

        // 整型数组元素默认初始化值:
        int[] a_int = new int[4];
        System.out.println(a_int[0]);      // 0

        // 浮点型数组元素默认初始化值:
        double[] a_double = new double[4];
        System.out.println(a_double[0]);   // 0.0

        // 字符型数组元素默认初始化值:
        char[] a_char = new char[4];
        System.out.println(a_char[0]);     //  ascii值为0所对应的字符
        if(a_char[0] == 0){
            System.out.println("字符型数组元素的默认初始化值是ascii值为0所对应的字符");
        }

        // boolean型数组元素默认初始化值:
        boolean[] a_boolean = new boolean[4];
        System.out.println(a_boolean[0]);  // false

        // 引用数组类型数组元素默认初始化值:
        String[] a_String = new String[4];
        System.out.println(a_String[0]);   // null


        /*
        * 1、数组的声明和初始化:
        *   静态初始化: int[] arrayName = new int[]{a, b, c, d};
        *   动态初始化: int[] arrayName = new int[3];
        *
        * 2、数组元素的调用:
        *   通过角标(下标)的方式获取数组元素 (0——length-1)
        *
        * 3、数组的长度: length
        *   用来刻画数组的容量的大小
        *
        * 4、遍历数组:
        *   一般使用for循环
        *
        * 5、一维数组的默认初始化值:
        *   整型数组元素的默认初始化值:          0
        *   浮点型数组元素的默认初始化值:        0.0
        *   字符型数组元素的默认初始化值:        ascii值为0对应的字符 '\u0000'
        *   boolean型数组元素的默认初始化值:    false(0对应的boolean值为false)
        *   引用数组类型数组元素的默认初始化值:   null
        *
        * 6、一维数组的内存解析:
        *   6.1、Java中的内存结构是如何划分的?(主要关心JVM的额运行时内存环境)
        *       -> 将内存区域划分为五个部分: 程序计数器、虚拟机栈、本地方法栈、堆、方法区
        *       -> 与目前数组相关的内存结构: int[] arr = new int[]{1, 2, 3);
        *           -> 虚拟机栈: 用于存放方法中声明的变量, 比如: arr
        *           -> 堆: 用于存放数组的实体(也即数组中的所有元素), 比如: 1, 2, 3
        *
        * */
    }
}




























